<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen-unsupported: Eigen::PolynomialSolverBase&lt; Scalar_, Deg_ &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen-unsupported</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classEigen_1_1PolynomialSolverBase.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1PolynomialSolverBase-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::PolynomialSolverBase&lt; Scalar_, Deg_ &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__Polynomials__Module.html">Polynomials module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Scalar_, int Deg_&gt;<br />
class Eigen::PolynomialSolverBase&lt; Scalar_, Deg_ &gt;</h3>

<p>Defined to be inherited by polynomial solvers: it provides convenient methods such as. </p>
<ul>
<li>real roots,</li>
<li>greatest, smallest complex roots,</li>
<li>real roots with greatest, smallest absolute real value,</li>
<li>greatest, smallest real roots.</li>
</ul>
<p>It stores the set of roots as a vector of complexes. </p>
</div><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Eigen::PolynomialSolverBase&lt; Scalar_, Deg_ &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classEigen_1_1PolynomialSolverBase__inherit__graph.png" border="0" usemap="#aEigen_1_1PolynomialSolverBase_3_01Scalar___00_01Deg___01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="aEigen_1_1PolynomialSolverBase_3_01Scalar___00_01Deg___01_4_inherit__map" id="aEigen_1_1PolynomialSolverBase_3_01Scalar___00_01Deg___01_4_inherit__map">
<area shape="rect" title="Defined to be inherited by polynomial solvers: it provides convenient methods such as." alt="" coords="5,5,233,332"/>
<area shape="rect" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver." alt="" coords="37,380,201,516"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ade5cd822a659dc18f4e8b674d477bec0"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#ade5cd822a659dc18f4e8b674d477bec0">absGreatestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=<a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::dummy_precision()) const</td></tr>
<tr class="separator:ade5cd822a659dc18f4e8b674d477bec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2438282277bbb62960c3ad1f286052b"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#ad2438282277bbb62960c3ad1f286052b">absSmallestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=<a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::dummy_precision()) const</td></tr>
<tr class="separator:ad2438282277bbb62960c3ad1f286052b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85d21a3516e60e6af12898b36e7a016f"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a85d21a3516e60e6af12898b36e7a016f">greatestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=<a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::dummy_precision()) const</td></tr>
<tr class="separator:a85d21a3516e60e6af12898b36e7a016f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d8e134d014023b692b0cabea57b8d99"><td class="memItemLeft" align="right" valign="top">const RootType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a6d8e134d014023b692b0cabea57b8d99">greatestRoot</a> () const</td></tr>
<tr class="separator:a6d8e134d014023b692b0cabea57b8d99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dc272fb0a2139fd2b5454d1e947a7da"><td class="memTemplParams" colspan="2">template&lt;typename Stl_back_insertion_sequence &gt; </td></tr>
<tr class="memitem:a8dc272fb0a2139fd2b5454d1e947a7da"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a8dc272fb0a2139fd2b5454d1e947a7da">realRoots</a> (Stl_back_insertion_sequence &amp;bi_seq, const RealScalar &amp;absImaginaryThreshold=<a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::dummy_precision()) const</td></tr>
<tr class="separator:a8dc272fb0a2139fd2b5454d1e947a7da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae315ff89bf2811db0b9378fdf9bdae11"><td class="memItemLeft" align="right" valign="top">const <a class="elRef" href="../classEigen_1_1Matrix.html">RootsType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#ae315ff89bf2811db0b9378fdf9bdae11">roots</a> () const</td></tr>
<tr class="separator:ae315ff89bf2811db0b9378fdf9bdae11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abacd1d52145ce7bdc6f070380eac3b2d"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#abacd1d52145ce7bdc6f070380eac3b2d">smallestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=<a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::dummy_precision()) const</td></tr>
<tr class="separator:abacd1d52145ce7bdc6f070380eac3b2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7512d659658ff8b70f333768f9e4bdf6"><td class="memItemLeft" align="right" valign="top">const RootType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a7512d659658ff8b70f333768f9e4bdf6">smallestRoot</a> () const</td></tr>
<tr class="separator:a7512d659658ff8b70f333768f9e4bdf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ade5cd822a659dc18f4e8b674d477bec0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade5cd822a659dc18f4e8b674d477bec0">&#9670;&nbsp;</a></span>absGreatestRealRoot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::absGreatestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code><a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a real root with greatest absolute magnitude. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the Scalar_ template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver.">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ad2438282277bbb62960c3ad1f286052b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2438282277bbb62960c3ad1f286052b">&#9670;&nbsp;</a></span>absSmallestRealRoot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::absSmallestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code><a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a real root with smallest absolute magnitude. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the Scalar_ template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver.">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a85d21a3516e60e6af12898b36e7a016f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85d21a3516e60e6af12898b36e7a016f">&#9670;&nbsp;</a></span>greatestRealRoot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::greatestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code><a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the real root with greatest value. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the Scalar_ template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver.">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6d8e134d014023b692b0cabea57b8d99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d8e134d014023b692b0cabea57b8d99">&#9670;&nbsp;</a></span>greatestRoot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RootType&amp; <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::greatestRoot </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the complex root with greatest norm. </dd></dl>

</div>
</div>
<a id="a8dc272fb0a2139fd2b5454d1e947a7da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8dc272fb0a2139fd2b5454d1e947a7da">&#9670;&nbsp;</a></span>realRoots()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<div class="memtemplate">
template&lt;typename Stl_back_insertion_sequence &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::realRoots </td>
          <td>(</td>
          <td class="paramtype">Stl_back_insertion_sequence &amp;&#160;</td>
          <td class="paramname"><em>bi_seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code><a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Clear and fills the back insertion sequence with the real roots of the polynomial i.e. the real part of the complex roots that have an imaginary part which absolute value is smaller than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the Scalar_ template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver.">PolynomialSolver</a> class as the default value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">bi_seq</td><td>: the back insertion sequence (stl concept) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: the maximum bound of the imaginary part of a complex number that is considered as real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae315ff89bf2811db0b9378fdf9bdae11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae315ff89bf2811db0b9378fdf9bdae11">&#9670;&nbsp;</a></span>roots()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="elRef" href="../classEigen_1_1Matrix.html">RootsType</a>&amp; <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::roots </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the complex roots of the polynomial </dd></dl>

</div>
</div>
<a id="abacd1d52145ce7bdc6f070380eac3b2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abacd1d52145ce7bdc6f070380eac3b2d">&#9670;&nbsp;</a></span>smallestRealRoot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::smallestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code><a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the real root with smallest value. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the Scalar_ template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver.">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7512d659658ff8b70f333768f9e4bdf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7512d659658ff8b70f333768f9e4bdf6">&#9670;&nbsp;</a></span>smallestRoot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int Deg_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RootType&amp; <a class="el" href="classEigen_1_1PolynomialSolverBase.html">Eigen::PolynomialSolverBase</a>&lt; Scalar_, Deg_ &gt;::smallestRoot </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the complex root with smallest norm. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PolynomialSolver_8h_source.html">PolynomialSolver.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1PolynomialSolverBase.html">PolynomialSolverBase</a></li>
    <li class="footer">Generated on Thu Apr 21 2022 13:08:00 for Eigen-unsupported by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
